package com.wander.designStructural.proxy.staticDesign;

/**
 * @Author : WDYin
 * @Date : 2020/12/10
 * @Desc :
 * 静态代理缺点：
 *
 * 1）代理类和委托类实现了相同的接口，代理类通过委托类实现了相同的方法。这样就出现了大量的代码重复。
 * 如果接口增加一个方法，除了所有实现类需要实现这个方法外，所有代理类也需要实现此方法。
 *
 * 2）代理对象只服务于一种类型的对象，如果要服务多类型的对象。势必要为每一种对象都进行代理，
 * 静态代理在程序规模稍大时就无法胜任了。
 *
 * 正因为静态代理有很多局限性，且编码起来没那么便捷，因此便出现了动态代理的方式。
 */
public class Client {
    public static void main(String[] args) {
        Subject subject = new RealSubject();
        Proxy proxy = new Proxy(subject);
        proxy.saleHouse();
    }
}
